$(function () {
  //账号管理 打开窗口
  $('.account-trigger').on('click', function (event) {
    event.preventDefault();
    $('.account-pop').addClass('is-visible3');
    // 账号管理 首次渲染
    var accountPage = 1;
    accountPageList(accountPage);
    // 账号管理 获取总页数 点击分页渲染列表
    accountSumPage(accountPage);
    $('.pageJump input').val('');
  });
  //账号管理  关闭窗口
  $('.account-pop').on('click', function (event) {
    if ($(event.target).is('.cd-popup-close') || $(event.target).is('.account-pop')) {
      event.preventDefault();
      $(this).removeClass('is-visible3');
    }
    if ($(event.target).is('.account-popup-close') || $(event.target).is('.account-pop')) {
      event.preventDefault();
      $(this).removeClass('is-visible3');
    }
  });


  //账号管理 获取总页数 点击分页渲染列表
  function accountSumPage(accountPage) {
    var pageSum;
    // $.ajax({
    //     url: '/paging/pageNumber/user',
    //     async: false,
    //     success: function (result) {
    //         pageSum = result.data;
    //         accountPageFunc(pageSum, accountPage);
    //     },
    //     error: function () {
    //         $('#accountPageBox .pageJump').hide();
    //     }
    // });
    var ret = getPagingPageNumberUser();
    ret.then(function (data) {
      console.log(data);
      pageSum = data.data;
      accountPageFunc(pageSum, accountPage);
      // 业务
    }).catch(function (err) {
      console.log(err);
      $('#accountPageBox .pageJump').hide();
    });
  }

  //账号管理  分页功能
  function accountPageFunc(pageSum, accountPage) {
    if (pageSum <= 1) {
      $('#accountPageBox .pageJump').hide()
    } else {
      $('#accountPageBox .pageJump').show()
    }
    Page({
      num: pageSum, //页码数
      startnum: accountPage, //指定页码
      elem: $('#accountPage'), //指定的元素
      callback: function (n) { //回调函数
        console.log(n);
        accountPageList(n);
      }
    });
  };

  //账号管理  页面渲染列表
  function accountPageList(n) {

    var roleid;
    var displayStr;
    // $.ajax({
    //     url: "/user/get",
    //     type: "GET",
    //     async: false,
    //     success: function (result) {
    //         console.log(result)
    //         if (result.status == "200") {
    //             roleid = result.data.role.roleId;
    //             console.log(roleid)
    //         } else {

    //         }
    //     }
    // });
    var ret = getUserGet();
    ret.then(function (data) {
      console.log(data)
      if (data.status == "200") {
        roleid = data.data.role.roleId;
        console.log(roleid)
      }
      var ret1 = getRoleGetRoleid(roleid);
      ret1.then(function (data) {
        console.log(data)
        if (data.data.modifiable == 1) {
          displayStr = "table-cell";
        } else {
          displayStr = "none";
        }
      }).catch(function (err) {
        console.log(err)
      });
    }).catch(function (err) {
      console.log(err)
    });
    // $.ajax({
    //     url: '/role/get/' + roleid,
    //     async: false,
    //     success: function (res) {
    //         console.log(res)
    //         if (res.data.modifiable == 1) {
    //             displayStr = "table-cell";
    //         } else {
    //             displayStr = "none";
    //         }
    //     }
    // });
    console.log(displayStr);
    // $.ajax({
    //     url: '/paging/approve/user/' + n,
    //     async: false,
    //     success: function (result) {
    //         console.log(result)
    //         $('#accountModal .tbodyList').html('');
    //         accountPage = n;
    //         console.log(accountPage)
    //         var data = result.data;
    //         if (data.length != 0) {
    //             for (var i = 0; i < data.length; i++) {
    //                 $('#accountModal .tbodyList').append('<tr><td><input type="checkbox" class="check" devid="' + data[i].userId + '"></td><td>' + ((+n - 1) * (+8) + (+i) + (+1)) + '</td><td>' + data[i].loginName + '</td><td>' + data[i].name + '</td><td>' + data[i].telephone + '</td><td>' + data[i].role.name + '</td><td>' + data[i].org.orgName + '</td><td class=" ' + displayStr + '" password="' + data[i].password + '" userId="' + data[i].userId + '"><span class="configBtnStyle modifyBtn margin0 editAccount-trigger">修改</span></td></tr>')
    //             }
    //         } else {
    //             accountPage = accountPage - 1;
    //             // 账号管理 首次渲染
    //             accountPageList(accountPage);
    //             // 账号管理 获取总页数 点击分页渲染列表
    //             accountSumPage(accountPage);
    //             $('.pageJump input').val('');
    //         }
    //     }
    // });
    var ret2 = getPagingApproveUser(n);
    ret2.then(function (data) {
      console.log(data)
      $('#accountModal .tbodyList').html('');
      accountPage = n;
      console.log(accountPage)
      var data = data.data;
      if (data.length != 0) {
        for (var i = 0; i < data.length; i++) {
          $('#accountModal .tbodyList').append('<tr><td><input type="checkbox" class="check" devid="' + data[i].userId + '"></td><td>' + ((+n - 1) * (+8) + (+i) + (+1)) + '</td><td>' + data[i].loginName + '</td><td>' + data[i].name + '</td><td>' + data[i].telephone + '</td><td>' + data[i].role.name + '</td><td>' + data[i].org.orgName + '</td><td class=" ' + displayStr + '" password="' + data[i].password + '" userId="' + data[i].userId + '"><span class="configBtnStyle modifyBtn margin0 editAccount-trigger">修改</span></td></tr>')
        }
      } else {
        accountPage = accountPage - 1;
        // 账号管理 首次渲染
        accountPageList(accountPage);
        // 账号管理 获取总页数 点击分页渲染列表
        accountSumPage(accountPage);
        $('.pageJump input').val('');
      }
    }).catch(function (err) {
      console.log(err)
    });
  };
  //全选删除/全不选
  $('#accountSelectAll').click(function () {
    var current = $(this).prop('checked');
    $('.check').prop({
      checked: current
    });
  });
  $('#accountModal').on('click', '.check', function () {
    var flag = true;
    //  遍历下面所有的状态
    for (var i = 0; i < $('.check').length; i++) {
      //          如果其中一个不满足条件，把状态设置成false，立刻跳出循环
      if ($('.check').eq(i).prop('checked') == false) {
        flag = false;
        break;
      }
    }
    $('#accountSelectAll').prop({
      checked: flag
    });
  });

  //账号管理 账号删除
  $("#accountDelBtn").on('click', function () {
    $('#accountModal .table input[type=checkbox]:checked').each(function () {
      var devid = $(this).attr('devid');
      // $.ajax({
      //     url: '/user/del/' + devid,
      //     type: 'POST',
      //     async: false,
      //     success: function (res) {
      //         console.log(res)
      //         tipModalFunc('删除成功!');
      //     }
      // });
      var ret = getUserDevid(devid);
      ret.then(function (data) {
        console.log(data)
        tipModalFunc('删除成功!');
      }).catch(function (err) {
        console.log(err)
      });
    });
    setTimeout(function () {
      // 账号管理 删除后重新渲染
      accountPageList(accountPage);
      // 账号管理 获取总页数 点击分页渲染列表
      accountSumPage(accountPage);
      $('.pageJump input').val('');
      $('#accountSelectAll').prop('checked', false);
    }, 0);
  });

  //账号管理 刷新
  $('#accountRefresh').on('click', function () {
    // 账号管理 首次渲染
    var accountPage = 1;
    accountPageList(accountPage);
    // 账号管理 获取总页数 点击分页渲染列表
    accountSumPage(accountPage);
    $('.pageJump input').val('');
  });

  //-------------账号管理--- 账号添加-----------

  //账号添加 打开窗口
  $('body').on('click', '.addAccount-trigger', function (event) {
    event.preventDefault();
    $('.addAccount-pop').addClass('is-visible3');
    getOrgFunc();

  });

  //  获取所有组织
  function getOrgFunc() {
    // $.ajax({
    //     url: '/organization/list',
    //     success: function (res) {
    //         console.log(res)
    //         $('#addAccountModal .choiceOrgList').html('');
    //         for (var i = 0; i < res.data.length; i++) {
    //             $('#addAccountModal .choiceOrgList').append('<option value="' + res.data[i].id + '" selected>' + res.data[i].orgName + '</option>')
    //         }
    //     }
    // });
    var ret = getOrganizationList();
    ret.then(function (data) {
      console.log(data)
      $('#addAccountModal .choiceOrgList').html('');
      for (var i = 0; i < data.data.length; i++) {
        $('#addAccountModal .choiceOrgList').append('<option value="' + data.data[i].id + '" selected>' + data.data[i].orgName + '</option>')
      }
    }).catch(function (err) {
      console.log(err)
    });
    // $.ajax({
    //     url: '/role/list',
    //     success: function (data) {
    //         console.log(data)
    //         $('#addAccountModal .choiceRoleIdList').html('');
    //         for (var i = 0; i < data.data.length; i++) {
    //             $('#addAccountModal .choiceRoleIdList').append('<option value="' + data.data[i].roleId + '" selected>' + data.data[i].name + '</option>')
    //         }
    //     }
    // });
    var ret1 = getRoleGet();
    ret1.then(function (data) {
      console.log(data)
      $('#addAccountModal .choiceRoleIdList').html('');
      for (var i = 0; i < data.data.length; i++) {
        $('#addAccountModal .choiceRoleIdList').append('<option value="' + data.data[i].roleId + '" selected>' + data.data[i].name + '</option>')
      }
    }).catch(function (err) {
      console.log(err)
    });
  }

  //账号添加  关闭窗口
  $('.addAccount-pop').on('click', function (event) {
    if ($(event.target).is('.cd-popup-close') || $(event.target).is('.addAccount-pop')) {
      event.preventDefault();
      $(this).removeClass('is-visible3');
      //Modal验证销毁重构
      $("#addAccountForm").data('bootstrapValidator').destroy();
      $('#addAccountForm').data('bootstrapValidator', null);
      addAccountFormValidator();
      $('#addAccountForm input').val('');
      $("#addAccountForm select").val('全部');
    }
  });
  $('.notEmptyInput').on('input', function () {
    $(this).val($.trim($(this).val()));
  });

  addAccountFormValidator();

  function addAccountFormValidator() {
    $("#addAccountForm").bootstrapValidator({
      message: 'This value is not valid',
      feedbackIcons: {
        valid: 'glyphicon glyphicon-ok',
        invalid: 'glyphicon glyphicon-remove',
        validating: 'glyphicon glyphicon-refresh'
      },
      fields: {
        loginName: {
          message: '账号验证失败',
          validators: {
            notEmpty: {
              message: '账号不能为空'
            },
            //                      regexp: {
            //                          regexp: /(^\s*)|(\s*$)/,//$('#addAccountForm .loginNameVal').val()
            //                          message: '99'
            //                      },
            remote: {
              url: '/user/validateName/',
              data: {
                'loginName': $('#addAccountForm .loginNameVal').val(),
                // 'originalloginName': function () {
                //     return $('#originalloginName').val();
                // }
              },
              type: 'POST',
              delay: 1000,
              message: "账号已存在",
            },
          }
        },
        password: {
          validators: {
            notEmpty: {
              message: '密码不能为空'
            }
          }
        },
        name: {
          validators: {
            notEmpty: {
              message: '所属人不能为空'
            }
          }
        },
        telephone: {
          validators: {
            notEmpty: {
              message: '所属人电话不能为空'
            }
          }
        }
      }
    }).on("success.form.bv", function (e) {
      e.preventDefault();
      // var $form = $(e.target);
      // var ret = getUserSave($form.serialize());
      // ret.then(function (data) {
      //     console.log(data)
      //     $('.addAccount-pop').removeClass('is-visible3');
      //     //Modal验证销毁重构
      //     $("#addAccountForm").data('bootstrapValidator').destroy();
      //     $('#addAccountForm').data('bootstrapValidator', null);
      //     addAccountFormValidator();
      //     $('#addAccountForm input').val('');
      //     $("#addAccountForm select").val('全部');
      //     console.log(accountPage)
      //     accountPageList(accountPage);
      //     // 账号管理 获取总页数 点击分页渲染列表
      //     accountSumPage(accountPage);
      //     tipModalFunc('添加成功!');
      // }).catch(function (err) {
      //     console.log(err)
      // });
      var $form = $(e.target);
      var nextUrl;
      //          nextUrl = "/device/save?orgid=1"+'&'+$form.serialize(); 
      nextUrl = "/user/save", //localhost:9092/user/save?orgid=1&roleId=1
        console.log($form.serialize())
      $.ajax({
        url: nextUrl,
        type: 'POST',
        data: $form.serialize(),
        success: function (result) {
          console.log(result)
          if (result.status == 200) {
            $('.addAccount-pop').removeClass('is-visible3');
            //Modal验证销毁重构
            $("#addAccountForm").data('bootstrapValidator').destroy();
            $('#addAccountForm').data('bootstrapValidator', null);
            addAccountFormValidator();
            $('#addAccountForm input').val('');
            $("#addAccountForm select").val('全部');
            accountPageList(accountPage);
            // 账号管理 获取总页数 点击分页渲染列表
            accountSumPage(accountPage);
            tipModalFunc('添加成功!');
          } else {
            console.log(result.message);
          }
        }
      });
    });
  }

  //-------------账号管理--- 账号修改-----------
  //账号修改 打开窗口
  $('body').on('click', '.editAccount-trigger', function (event) {
    event.preventDefault();
    $('.editAccount-pop').addClass('is-visible3');
    getOrgAccountFunc();
    var loginName = $(this).parent().siblings().eq(2).text();
    var name = $(this).parent().siblings().eq(3).text();
    var telephone = $(this).parent().siblings().eq(4).text();
    var roleName = $(this).parent().siblings().eq(5).text();
    var orgName = $(this).parent().siblings().eq(6).text();
    var password = $(this).parent().attr('password');
    var userid = $(this).parent().attr('userid');
    console.log(loginName, name, telephone, roleName, orgName, userid);
    $('#editAccountModal .loginNameVal').val(loginName);
    $('#editAccountModal .nameVal').val(name);
    $('#editAccountModal .telephoneVal').val(telephone);
    $('#editAccountModal .roleIdVal').val(roleName);
    //    $('#editAccountModal').find("option:selected").val(roleName);
    $('#editAccountModal .orgNameVal').val(orgName);
    $('#editAccountModal .passwordVal').val(password);
    $('#editAccountModal .useridVal').val(userid);

    $('#editAccountModal .orgidVal').find("option:contains('" + orgName + "')").attr("selected", true);
    $('#editAccountModal .roleIdVal').find("option:contains('" + roleName + "')").attr("selected", true);
    
    // $('#editAccountModal .orgidVal').val('');
    // $('#editAccountModal .roleIdVal').val('');
  });
  //修改当前账号 打开窗口
  $('body').on('click', '.editCurrentAccount-trigger', function (event) {
    event.preventDefault();
    $('.editCurrentAccount-pop').addClass('is-visible3');
    getOrgAccountFunc();
    var loginName = '';
    var name = '';
    var telephone = '';
    var roleName = '';
    var orgName = '';
    var password = '';
    var userId = '';

    $.ajax({
      url: "/user/get",
      type: "GET",
      async: false,
      success: function (result) {
        console.log(result)
        if (result.status == "200") {
          name = result.data.name;
          loginName = result.data.loginName;
          telephone = result.data.telephone;
          orgName = result.data.org.orgName;
          roleName = result.data.role.name;
          password = result.data.password;
          userId = result.data.userId;
        } else {

        }
      }
    });
    // var ret = getUserGet();
    // ret.then(function (data) {
    //     console.log(data)
    //     name = data.data.name;
    //     loginName = data.data.loginName;
    //     telephone = data.data.telephone;
    //     orgName = data.data.org.orgName;
    //     roleName = data.data.role.name;
    //     password = data.data.password;
    //     userId = data.data.userId;
    // }).catch(function (err) {
    //     console.log(err)
    // });

    console.log(loginName, name, telephone, roleName, orgName, userId)
    $('#editCurrentAccountModal .loginNameVal').val(loginName);
    $('#editCurrentAccountModal .passwordVal').val(password);
    $('#editCurrentAccountModal .nameVal').val(name);
    $('#editCurrentAccountModal .telephoneVal').val(telephone);
    $('#editCurrentAccountModal .roleNameVal').html('<option>' + roleName + '</option>');
    $('#editCurrentAccountModal .orgNameVal').html('<option>' + orgName + '</option>');
  });
  //账号修改当前账号  关闭窗口
  $('.editCurrentAccount-pop').on('click', function (event) {
    if ($(event.target).is('.cd-popup-close') || $(event.target).is('.editCurrentAccount-pop')) {
      console.log($(this), $('.editCurrentAccount-pop'))
      event.preventDefault();
      $(this).removeClass('is-visible3');
      //Modal验证销毁重构
      //          $("#editCurrentAccountForm").data('bootstrapValidator').destroy();
      //          $('#editCurrentAccountForm').data('bootstrapValidator', null);
      //          editAccountFormValidator();
      //          $('#editCurrentAccountForm input').val('');
      //          $("#editCurrentAccountForm select").val('全部');
    }
  });
  //账号修改  关闭窗口
  $('.editAccount-pop').on('click', function (event) {
    if ($(event.target).is('.cd-popup-close') || $(event.target).is('.editAccount-pop')) {
      console.log($(this), $('.editAccount-pop'))
      event.preventDefault();
      $(this).removeClass('is-visible3');
      //Modal验证销毁重构
      $("#editAccountForm").data('bootstrapValidator').destroy();
      $('#editAccountForm').data('bootstrapValidator', null);
      editAccountFormValidator();
      $('#editAccountForm input').val('');
      $("#editAccountForm select").val('全部');
    }
  });

  //  获取所有组织
  function getOrgAccountFunc() {
    $.ajax({
        url: '/organization/list',
        async: false,
        success: function (res) {
            console.log(res)
            $('#editAccountModal .choiceOrgList').html('');
            for (var i = 0; i < res.data.length; i++) {
                $('#editAccountModal .choiceOrgList').append('<option value="' + res.data[i].id + '">' + res.data[i].orgName + '</option>')
            }
        }
    });

    // var ret = getOrganizationList();
    // ret.then(function (data) {
    //   console.log(data)
    //   $('#editAccountModal .choiceOrgList').html('');
    //   for (var i = 0; i < data.data.length; i++) {
    //     $('#editAccountModal .choiceOrgList').append('<option value="' + data.data[i].id + '">' + data.data[i].orgName + '</option>')
    //   }
    // }).catch(function (err) {
    //   console.log(err)
    // });
    $.ajax({
        url: '/role/list',
        async: false,
        success: function (data) {
            console.log(data)
            $('#editAccountModal .choiceRoleIdList').html('');
            for (var i = 0; i < data.data.length; i++) {
                $('#editAccountModal .choiceRoleIdList').append('<option value="' + data.data[i].roleId + '">' + data.data[i].name + '</option>')
            }
        }
    });
    // var ret1 = getRoleGet();
    // ret1.then(function (data) {
    //   console.log(data)
    //   $('#editAccountModal .choiceRoleIdList').html('');
    //   for (var i = 0; i < data.data.length; i++) {
    //     $('#editAccountModal .choiceRoleIdList').append('<option value="' + data.data[i].roleId + '">' + data.data[i].name + '</option>')
    //   }
    // }).catch(function (err) {
    //   console.log(err)
    // });
  }

  editAccountFormValidator();

  function editAccountFormValidator() {
    $("#editAccountForm").bootstrapValidator({
      message: 'This value is not valid',
      feedbackIcons: {
        valid: 'glyphicon glyphicon-ok',
        invalid: 'glyphicon glyphicon-remove',
        validating: 'glyphicon glyphicon-refresh'
      },
      fields: {
        loginName: {
          message: '账号验证失败',
          validators: {
            notEmpty: {
              message: '账号不能为空'
            },
            // regexp: {
            //     regexp: /^[a-zA-Z0-9_]+$/,
            //     message: '账号只能包含大写、小写、数字和下划线'
            // }
          }
        },
        password: {
          validators: {
            notEmpty: {
              message: '密码不能为空'
            }
          }
        },
        name: {
          validators: {
            notEmpty: {
              message: '所属人不能为空'
            }
          }
        },
        telephone: {
          validators: {
            notEmpty: {
              message: '所属人电话不能为空'
            }
          }
        }
      }
    }).on("success.form.bv", function (e) {
      e.preventDefault();
      var $form = $(e.target);
      var nextUrl;
      //          nextUrl = "/device/save?orgid=1"+'&'+$form.serialize(); 
      nextUrl = "/user/save", //localhost:9092/user/save?orgid=1&roleId=1
        console.log($form.serialize())
      $.ajax({
        url: nextUrl,
        type: 'POST',
        data: $form.serialize(),
        success: function (result) {
          console.log(result)
          if (result.status == 200) {
            $('.editAccount-pop').removeClass('is-visible3');
            //Modal验证销毁重构
            $("#editAccountForm").data('bootstrapValidator').destroy();
            $('#editAccountForm').data('bootstrapValidator', null);
            editAccountFormValidator();
            $('#editAccountForm input').val('');
            $("#editAccountForm select").val('全部');
            console.log(accountPage)
            accountPageList(accountPage);
            tipModalFunc('修改成功!');
          } else {
            console.log(result.message);
          }
        }
      });

      // var ret = getUserSave($form.serialize());
      // ret.then(function (data) {
      //     console.log(data)
      //     $('.editAccount-pop').removeClass('is-visible3');
      //     //Modal验证销毁重构
      //     $("#editAccountForm").data('bootstrapValidator').destroy();
      //     $('#editAccountForm').data('bootstrapValidator', null);
      //     editAccountFormValidator();
      //     $('#editAccountForm input').val('');
      //     $("#editAccountForm select").val('全部');
      //     console.log(accountPage)
      //     accountPageList(accountPage);
      //     tipModalFunc('修改成功!');
      // }).catch(function (err) {
      //     console.log(err)
      // });
    });
  }
});